﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Bejeweled.Support
{
    public class RandomBejeweled
    {
        // void Random(int n, int[,] Board, int height, int width, int yo, int xo);


        public static void Random(int n, Diamond[,] Board, int height, int width, int yo, int xo)
        {
            Random ran = new Random((int)DateTime.Now.Ticks);

            for (int i = yo; i < height; i++)
            {
                for (int j = xo; j < width; j++)
                {
                    int value = ran.Next(0, n-1);
                    Board[i,j] = new Diamond(value, j, i);
                    // Hạn chế không có 3 viên kim cương cùng màu nằm trên 1 hàng.
                    if (j > 1 && Board[i, j - 2].id == Board[i, j - 1].id && Board[i, j - 1].id == value)
                    {
                        if (value == n - 1)
                            Board[i, j].id = n - 2;
                        else
                            Board[i, j].id = value + 1;
                    }
                    else
                        Board[i, j].id = value;
                }
            }
            // Hạn chế không có 3 viên kim cương cùng màu nằm trên 1 cột.
            for (int i = yo; i < width; i++)
                for (int j = xo; j < height; j++)
                {
                    int value = Board[j, i].id;
                    if (j > 1 && Board[j - 2, i].id == value && Board[j - 1, i].id == value)
                    {
                        if (value == n)
                            Board[j, i].id = n - 1;
                        if (value == 1)
                            Board[j, i].id = 2;
                        else
                            Board[j, i].id = value + 1;
                    }
                }
        }
    }
}
